一文看懂三代组装软件——Flye
介绍
Flye是用于单分子组装数据的denovo基因组装的软件。这个软件可以用于各种数据集,从小的细菌到大的哺乳动物。
输入是原始的PacBio或者ONT的序列文件,输出是polished的contig。Flye同时也有针对微生物组装的模式。
安装和使用
conda install flye
使用示例
针对pacbio
flye --pacbio-raw E.coli_PacBio_40x.fasta --out-dir out_pacbio --threads 4
针对nanopore数据
flye --nano-raw Loman_E.coli_MAP006-1_2D_50x.fasta --out-dir out_nano --threads 4
输入数据的类型
Oxford Nanopore:
使用--nano-raw,ONT的数据错误率在5%-15%之间,尤其是在同聚物区域,错误率更高。
PacBio HiFi: 使用--pacbio-hifi的参数来选择这个模式。期望错误率低于1%,我们也可以用--hifi-error这个参数来指定错误率,这样可以获得更完整的组装。 PacBio CLR: 使用--pacbio-raw的参数,错误率在15%左右。注意的是,使用这个模式需要去除接头和分开多个passes。不过需要注意别拆分出了错误的序列。 error-corrected reads: 可以使用--pacbio-corr 或者 --nono-corr这个参数,来支持校正后的序列,这个序列错误率应该小于3%。如果组装的结果比较碎,可能序列中的错误率比较高,这个时候可以考虑用raw reads。 多个contig的一致性序列: 使用--subassemblies来输入一系列的组装好的contig序列,这个可以用其他组装程序获得,期望的错误率小于1%。这样的话,用--iterations 0 可以来跳过polishing stage。
由于Flye可以直接使用raw reads,因此不需要前期的纠错。Flye会检测嵌合序列和低质量的序列,因此这个也不需要去除。然后,需要去除的是污染的序列。
参数描述
1
最小overlap长度
这个参数默认是reads N90,一般不需要设置。如果要设置,可以设置到3-5k。建议设置的越高越好,这样repeat graph就更少会纠缠,但是这样会产生更多的gap。2
Metagenome mode
3
Haplotype模式
默认的,Flye会合并graph中各种结构(bubbles、superbubbles、roundabout)等,来产生更长的一致性contig。使用--keep-haplotypes来保留更多的path,产生更细节的组装结果。4
Trestle
5
覆盖度的降低
对于大基因组,当深度过高的时候,需要较高的RAM。因此可以使用--asm-coverage来选择特定的深度,一般而言使用30x比较合适。6
打磨的迭代次数
结果输出
assembly.fasta: 最终的组装的结果 assembly_graph.gfa|gv:
最终的repeat graph,不过edge序列会和contig的序列不一样,因为contig可能会包含额外的多个边。
assembly_info.txt:
contig的额外的信息
每列信息如下:
contig/scaffold id
长度
覆盖度
是否是圈
是否是重复
重复度
Alternative group
图的路径
性能比较
算法说明
什么是repeat graph?
Flye的主要流程
以下图为例,假设基因组A中有重复序列R1和R2,每个重复序列有2个拷贝,相似度为99%;同时还有四个唯一的片段A、B、C、D。
根据基因组获得和产生了一系列的序列(b),将这些序列进行进行拼接,拼接成disjointig(c),并将这些disjointig进行连接(d),构建连接后disjointig通过比对获得的repeat plot(e),并将repeat plot转换成repeat graph,即flye的核心数据结构(f),然后将序列比对到repeat graph上(g),最后根据比对结果,构建R1的两个拷贝和R2的两个拷贝。
repeat plot和repeat graph如何相互转换呢?
假设一条序列XABYABZBU,其中重复为AB,AB和B。根据局部的自身比对,可以画出如图a的共线性图。如果比对的终点在对角线的投影重合,那么分配为相通的颜色,例如下图a中的蓝色。将对角线上不同的点连接起来,形成线性的结构(b);将相同颜色的点合并到一起,形成图c,最后对图进行简化得到图(d)。
如何解决unbridge repeat?
结语
这次给大家介绍了Flye这个软件。
大家继续关注,我们后续会推出更多其他软件。
参考文献
1.https://github.com/fenderglass/Flye/blob/flye/docs/USAGE.md
往期精彩